/**
 * @brief 函数封装
 */

#pragma once

#include <functional>
#include <type_traits>
#include <tuple>

// 函数绑定
template< typename T > struct funcWrap< T >{};

template< typename retType , typename ...argTypes >
struct funcWrap< std::function< retType (argTypes...)  > >{
	using callee_type = std::function< retType ( argTypes) > >;

	callee_type   __m_callee_func;
};

/// 函数参数绑定模块

struct paramBase{
	
};

template< typename ...argTypes >
struct paramWrap : public paramBase{
	std::tuple< argTypes... >    __m_args;
};

// 参量队列
struct paramsQueue{
	
};

// 订阅列表
struct sub
